from PIL import Image, ImageDraw, ImageFont
import imageio

# 打开 GIF 文件
gif_path = 'test2.gif'
gif = Image.open(gif_path)

# 创建一个空列表来存储修改后的帧
frames = []

# 添加字体（需要一个有效的 TTF 字体文件路径）
font_path = "arial.ttf"  # 这里可以替换为你系统中存在的字体路径
font = ImageFont.truetype(font_path, 20)

# 对每一帧进行操作
try:
    while True:
        # 创建一个与当前帧相同的副本，以便进行修改
        frame = gif.copy()

        # 创建一个可绘制对象
        draw = ImageDraw.Draw(frame)

        # 添加文本到帧
        draw.text((10, 10), "Hello, GIF!", fill="white", font=font)

        # 将修改后的帧添加到帧列表中
        frames.append(frame)

        # 移动到下一帧
        gif.seek(gif.tell() + 1)
except EOFError:
    pass  # 已经到达 GIF 的结尾

# 保存新的 GIF 文件
output_path = 'output.gif'
frames[0].save(output_path, save_all=True, append_images=frames[1:], loop=0)

print(f"修改后的 GIF 已保存到 {output_path}")
